Natural Language Processing (NLP) and Natural Language Understanding (NLU) involve using computer processing to extract meaningful information from natural language inputs such as human generated speech and text. One recent application of such technology is processing speech and/or text queries in mobile devices such as smartphones.
FIG. 1 shows some example screen shots of one such mobile device application, Dragon Go!, which processes speech query inputs and obtains simultaneous search results from a variety of top web sites and content sources. Such applications require adding a natural language understanding component to an existing web search algorithm in order to extract semantic meaning from the input queries. This can involve using approximate string matching to discover semantic template structures. One or more semantic meanings can be assigned to each semantic template. Parsing rules and classifier training samples can be generated and used to train NLU models that determine query interpretations (sometimes referred to as query intents).
Complex NLU applications for mobile devices such as Dragon Go! are implemented using a client-server architecture where the NLU processing is done solely at the remote server. But there can be a substantial amount of relevant data stored on the local mobile device that needs to be uploaded to the remote NLU processor to optimize the NLU results; for example, lists of meetings (title, content, attendees), contacts, song lists, etc. This data transfer of this data that could be leveraged by the server-side NLU can be problematic for a variety of reasons including confidentiality concerns and the sheer amount of data needed to be uploaded and kept in-sync.